Thông báo

Collapse
No announcement yet.

{HELP} Dùng VDK tạo reset cho chính nó !

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    hihi, hùi đó giờ e mới nghe có zụ reset mà chương trình không chạy lại từ đầu

    Comment


    • #17
      Nguyên văn bởi Acxen_lupine Xem bài viết
      Hơ, cái này thì có khó gì đâu...
      Bạn thừa sức nghĩ ra mà... đúng 1 tháng nữa nếu bạn vẫn chưa nghĩ ra tôi sẽ lập 1 topic mới về vấn đề này. Nếu bạn nghĩ ra thì nhờ bạn dành chút thời gian để giảng giải cho những anh em chưa biết nhé.
      bạn Acxen_lupine có thể dành chút thời gian giới thiệu cho ae biết được: Reset chạy lại chương trình từ đầu và không chạy lại chương trình từ đầu thì nó được ứng dụng vào đâu ? giúp ae nhé bạn !
      chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
      Everything should be made as simple as possible, but not simpler

      Comment


      • #18
        Nguyên văn bởi ARAXIN Xem bài viết
        hihi, hùi đó giờ e mới nghe có zụ reset mà chương trình không chạy lại từ đầu
        Giờ nghe rồi bạn thấy thế nào, xin phát biểu cảm tưởng xem???

        Nguyên văn bởi daohuytien Xem bài viết
        bạn Acxen_lupine có thể dành chút thời gian giới thiệu cho ae biết được: Reset chạy lại chương trình từ đầu và không chạy lại chương trình từ đầu thì nó được ứng dụng vào đâu ? giúp ae nhé bạn !
        Đây là kiến thức hết sức cơ bản thôi mà.

        Tuy nhiên, tôi cần dùng 1 tháng là để nghĩ xem nó ứng dụng được vào đâu!!!
        Sau 1 tháng nếu không nghĩ được... thì đành "ngậm ngùi" trình cái giải pháp mà không ứng dụng này.

        Tôi không muốn lớp trẻ sau này nghĩ mấy "bố" lớp này chỉ dành thời gian tranh luận mấy cái vớ vẩn.

        Xin lượng thứ!
        Hôm nay trời nắng chang chang.
        Mèo con đi học chẳng mang thứ gì.
        Chỉ mang một cái bút chì.
        Và mang một mẩu bánh mì con con.

        Comment


        • #19
          Không lẽ có Hibernate trên MCU @@.
          Trả lời kiểu đánh đố này thà chả nói cho xong

          Comment


          • #20
            ô hay thật bạn thanhlonguit đâu rùi, bạn hỏi ae mà chả thấy có thông tin gì nữa cả ?? để ae bàn luận xôm quá, để mấy ae có nhẽ lại không ngủ ngon được mất. bạn đừng để mấy ae nhiệt tình mà giống như tui : hum vừa rùi tui cũng vì một bạn nói làm cái trái tim 3 màu dùng led đơn đấu dây nhiều quá và nghĩ tới là nản mất. tui đã dành thời gian 2h để làm cái đó cả lập trình nữa để khẳng định là làm gọn gàng và giá còn rẻ nữa,
            chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
            Everything should be made as simple as possible, but not simpler

            Comment


            • #21
              Nguyên văn bởi duong_act Xem bài viết
              Không lẽ có Hibernate trên MCU @@.
              Trả lời kiểu đánh đố này thà chả nói cho xong
              Toi dang rat nghiem tuc day!!!
              Ban khong nho la ban dang lam kho toi a? Nhung toi dam khang dinh voi 8051 toi co the reset ma chuong trinh khong chay lai tu dau co the chay tu doan bat ky nao do.
              Vui long doi 1 thoi gian, toi khong noi choi dau.

              Tôi đang rất nghiêm túc đây!!!
              Bạn không nhớ là bạn đang làm khó tôi à? Nhưng tôi dám khẳng định với 8051 tôi có thể reset mà chương trình không chạy lại từ đầu, có thể chạy từ đoạn bất kỳ nào đó.
              Vui lòng đợi một thời gian, tôi không nói chơi đâu.
              Last edited by Acxen_lupine; 26-01-2013, 01:22. Lý do: Người Việt nên gõ tiếng Việt có dấu!!!
              Hôm nay trời nắng chang chang.
              Mèo con đi học chẳng mang thứ gì.
              Chỉ mang một cái bút chì.
              Và mang một mẩu bánh mì con con.

              Comment


              • #22
                Thì nãy giờ mọi người vẫn nghiêm túc mà nhỉ :s.
                Bạn khẳng định mà không đưa ra một thông tin nào để chứng minh thì...
                Thôi thì chờ vậy

                Comment


                • #23
                  Nguyên văn bởi Acxen_lupine Xem bài viết
                  Toi dang rat nghiem tuc day!!!
                  Ban khong nho la ban dang lam kho toi a? Nhung toi dam khang dinh voi 8051 toi co the reset ma chuong trinh khong chay lai tu dau co the chay tu doan bat ky nao do.
                  Vui long doi 1 thoi gian, toi khong noi choi dau.
                  8051 đang chạy bị reset mà ko chạy lại từ đầu chương trình đó là đơn giản vì khi reset cứng thì vùng RAM đa mục đích của nó ko bị mất giá trị từ đó có thể nạp giá trị cần nhảy từ trong RAM cho PC, vấn đề kĩ sảo dùng lệnh ko có gì huyền bí.
                  Last edited by chung1608; 25-01-2013, 13:43.

                  Comment


                  • #24
                    Nguyên văn bởi chung1608 Xem bài viết
                    8051 đang chạy bị reset mà ko chạy lại từ đầu chương trình đó là đơn giản vì khi reset cứng thì vùng RAM đa mục đích của nó ko bị mất giá trị từ đó có thể nạp giá trị cần nhảy từ trong RAM cho PC, vấn đề kĩ sảo dùng lệnh ko có gì huyền bí.
                    Lệnh này nó nằm ở đâu trong chương trình hả bác :s

                    Comment


                    • #25
                      Nguyên văn bởi duong_act Xem bài viết
                      Lệnh này nó nằm ở đâu trong chương trình hả bác :s
                      nó có thể xem là 1 kỹ sảo với hoạt động của lệnh RET thôi. Ta biết rằng khi thực thi lệnh RET sẽ lấy các byte cao và thấp nạp lại PC từ stack SP, vậy trước lệnh RET ta PUSH giá trị vị trí cần tới từ 2 ô nhớ trong RAM vào cho stack. Ví dụ: giả sử 2 ô nhớ sau có giá trị: ô 30H=#01H và ô 31H=#23H , sau khi thực thi đoạn lệnh sau thì PC sẽ chạy tiếp tại vị trí 0123H của chương trình:
                      Code:
                      PUSH 31H
                      PUSH 30H
                      RET
                      Last edited by chung1608; 25-01-2013, 19:38.

                      Comment


                      • #26
                        Nguyên văn bởi chung1608 Xem bài viết
                        nó có thể xem là 1 kỹ sảo với hoạt động của lệnh RET thôi. Ta biết rằng khi thực thi lệnh RET sẽ lấy các byte cao và thấp nạp lại PC từ stack SP, vậy trước lệnh RET ta PUSH giá trị vị trí cần tới từ 2 ô nhớ trong RAM vào cho stack. Ví dụ: giả sử 2 ô nhớ sau có giá trị: ô 30H=#23H và ô 31H=#01H , sau khi thực thi đoạn lệnh sau thì PC sẽ chạy tiếp tại vị trí 0123H của chương trình:
                        [CODE]
                        PUSH 31H
                        PUSH 30H
                        RET
                        Ở đây là Reset cứng bác ạ. Tức là phải làm sao sau khi Reset thanh ghi PC chạy từ 1 vị trí xác định khác vị trí đầu chương trình.
                        Nếu phần cứng không xóa giá trị thanh ghi PC thì bác phải canh me sao cho ấn Reset đúng vị trí sau lệnh RET. Nếu chương trình đang chạy liên tục thì việc này chắc khó hơn lên giời hoặc là có cách là sau lệnh RET con MCU nó chết cứng tại đó để chờ Reset.

                        Comment


                        • #27
                          Nguyên văn bởi duong_act Xem bài viết
                          Ở đây là Reset cứng bác ạ. Tức là phải làm sao sau khi Reset thanh ghi PC chạy từ 1 vị trí xác định khác vị trí đầu chương trình.
                          ta đặt đoạn chương trình trên tại vị trí 0000H. Trong chương trình chính khi cần thì lưu vị trí khác vào 2 ô nhớ 30H và 31H, khi có reset cứng bằng nút bấm tại chân reset VDK sẽ chạy lại tại 0000H và lôi vị trí mới từ 2 ô nhớ này để chạy. Đây là cách ta nạp giá trị bất kì không cố định vào cho bộ đếm chương trình PC.

                          Comment


                          • #28
                            Việc đặt lệnh đó ở 0000H đã nằm trong chương trình rồi đó bác.

                            Comment


                            • #29
                              Nguyên văn bởi duong_act Xem bài viết
                              Việc đặt lệnh đó ở 0000H đã nằm trong chương trình rồi đó bác.
                              đầu chương trình chính đc tính tại vị trí bắt đầu công việc chính của chương trình, còn 0000H là vị trí bắt đầu của vùng nhớ ROM. Ai bấm reset cho 8051 mà ko chạy lại lệnh tại 0000H thì chắc chỉ có thiết kế lại con 8051 ^^! vì thế mới nói cái này chỉ là kỹ sảo thôi.

                              Comment


                              • #30
                                Vậy ngay đầu chơi bài ORG xxxxH có ngon hơn không hả bác

                                Comment

                                Về tác giả

                                Collapse

                                thanhlonguit Tìm hiểu thêm về thanhlonguit

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X